#ifndef __D_SNAKE_H__
#define __D_SNAKE_H__

#include "Snake/ISnakeManager.h"
#include "Snake/ISnakeConnector.h"
#include "DSnakeDef.h"

class DSnake : public ISnake
{
public:
	// == Life Cyle == //
	DSnake(DWORD dwID);
	~DSnake();

	bool							Init(snake::ISnakeConnector* pConnector);
	void							UnInit();

	// == Schedule == //
	void							Tick();

	// == Manipulation == //
	bool							OnEatFruit(/*Param*/);

	// == Get && Set == //
	DWORD							GetID(){return m_dwID;}

private:
	bool							InsHead(/*Param*/);
	bool							DelTail();

private:
	snake::ISnakeConnector*			m_pConnector;

	DWORD							m_dwID;
	IMover*							m_pMover;
	std::list<SNAKE_BODY>			m_listSnake;
};

#endif // __D_SNAKE_H__ [5/15/2013 kch08]